<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 第一步，引入react核心库，先有核心库，才能有ReactDOM库 -->
    <script src="../js/react.development.js"></script>
    <!-- 第二步，引入react-dom库，用于操作DOM，这样就有ReactDOM对象，可打印 -->
    <script src="../js/react-dom.development.js"></script>
    <!-- 第三步，引入babel库，用于翻译jsx语法 -->
    <script src="../js/babel.min.js"></script>

    <!-- 第四步，创建一个容器 -->
    <div id="box"></div>

    <script type="text/babel"> /* 指定脚本的类型为babel编译 */

        console.log('公共类组件', React.Component);

        // 创建一个LssComponents继承React提供的组件
        class LssComponent extends React.Component {
            render() { // render方法放在组件的实例对象上，供实例使用
                console.log('this', this); // 指向实例化的这个组件对象
                return <h2>类定义组件</h2>
            }
        }

        ReactDOM.render(<LssComponent />, document.querySelector('#box'))

        /*
            执行了ReactDOM.render()之后，发生了什么
                1. ReactDOM首先解析组件标签，找到LssComponent组件
                2. 发现组件使用类定义的，随后new出来该类的实例，并通过该实例调用原型上的render方法
                3. 将render返回的虚拟DOM转化为真实的DOM，然后呈现在页面上
        */

    </script>


</body>

</html>